// license-header java merge-point
/**
 * This is only generated once! It will never be overwritten.
 * You can (and have to!) safely modify it by hand.
 */
package edu.uoc.tfc.service;

import java.util.Collection;

import edu.uoc.tfc.dbmodel.Asseguradora;
import edu.uoc.tfc.dto.AsseguradoraVO;
import edu.uoc.tfc.dto.ResultatCercaAsseguradoraVO;
import edu.uoc.tfc.dto.security.UserVO;

/**
 * @see edu.uoc.tfc.service.AsseguradoraService
 */
public class AsseguradoraServiceImpl
    extends edu.uoc.tfc.service.AsseguradoraServiceBase
{

    /**
     * @see edu.uoc.tfc.service.AsseguradoraService#getAsseguradora(java.lang.String)
     */
    protected  edu.uoc.tfc.dto.AsseguradoraVO handleGetAsseguradora(java.lang.String asseguradoraId)
        throws java.lang.Exception
    {
    	return (AsseguradoraVO) this.getAsseguradoraDao().
    			load(this.getAsseguradoraDao().TRANSFORM_ASSEGURADORAVO, Long.valueOf(asseguradoraId));
    }

    /**
     * @see edu.uoc.tfc.service.AsseguradoraService#cercaAsseguradores(edu.uoc.tfc.dto.CriteriaAsseguradoraVO)
     */
    protected  edu.uoc.tfc.dto.ResultatCercaAsseguradoraVO handleCercaAsseguradores(edu.uoc.tfc.dto.CriteriaAsseguradoraVO criteriaAsseguradora)
        throws java.lang.Exception
    {    	
		
		@SuppressWarnings("unchecked")
        Collection<AsseguradoraVO> asseguradores =
        		getAsseguradoraDao()
        			.findAsseguradoresByCriteria(
        					getAsseguradoraDao().TRANSFORM_ASSEGURADORAVO, criteriaAsseguradora);
		
		ResultatCercaAsseguradoraVO resultat = new ResultatCercaAsseguradoraVO();
		
		resultat.setElements(asseguradores);
		resultat.setTotalRecords(asseguradores.size());		
		return resultat;    	
    }

    /**
     * @see edu.uoc.tfc.service.AsseguradoraService#altaAsseguradora(edu.uoc.tfc.dto.AsseguradoraVO)
     */
    protected  void handleAltaAsseguradora(edu.uoc.tfc.dto.AsseguradoraVO asseguradora)
        throws java.lang.Exception
    {
    	getAsseguradoraDao().create(Asseguradora.Factory.newInstance(
    			asseguradora.getNom(), asseguradora.getDescripcio(), true));
    }

    /**
     * @see edu.uoc.tfc.service.AsseguradoraService#modificaAsseguradora(edu.uoc.tfc.dto.AsseguradoraVO)
     */
    protected  void handleModificaAsseguradora(edu.uoc.tfc.dto.AsseguradoraVO asseguradora)
        throws java.lang.Exception
    {
    	asseguradora.setActiva(asseguradora.getActiva()==null?false:true);
    	getAsseguradoraDao().update(
    		getAsseguradoraDao().asseguradoraVOToEntity(asseguradora));
    }

}